<?php
namespace Admin\Controller;
use Think\Controller;
use Org\Util;
class CategoryController extends CommonController
{
    //栏目列表页
	public function index($add=null){
		$mod=M("model");
		$tpl=D("Category");
		$model = $mod->where("status=1")->select();//模型
		$category = D("Category")->cate();//调用无限分类排序方法
		$mo['modelid']=0;
		$mo['name']='';
		//插入单页类型的modelid为0
		$push=array_push($model,$mo);
		if(!$push){
			alertMes('模型获取失败','/admin/index/main');
		}
		//pc端模板
		$files=$tpl->pc_field();
		//不同类型的模板
		$list_tpl=$tpl->list_tpl($files);//列表页模板
		$index_tpl=$tpl->category_tpl($files);//内容页模板
		$show_tpl=$tpl->show_tpl($files);//首页模板 栏目模板
		$page_tpl=$tpl->page_tpl($files);//单页模板 
		//定义tab的显示属性
		$layui_this="layui-this";
		$layui_show="layui-show";
		//添加栏目 改变默认tab
		if($add==1){
			$layui_this="";
			$layui_show="";
			$his="layui-this";
			$show="layui-show";
			$this->assign('his',$his);
			$this->assign('show',$show);
		}
		//添加单页 改变默认tab
		if($add==2){
			$layui_this="";
			$layui_show="";
			$hs="layui-this";
			$how="layui-show";
			$this->assign('hs',$hs);
			$this->assign('how',$how);
		}
		
		$this->assign('layui_this',$layui_this);
		$this->assign('layui_show',$layui_show);
		$this->assign('list_tpl',$list_tpl);
		$this->assign('show_tpl',$show_tpl);
		$this->assign('index_tpl',$index_tpl);
		$this->assign('page_tpl',$page_tpl);
		$this->assign('category',$category);
		$this->assign('model',$model);//分配模型
		$this->display();
	}
	//添加栏目
	public function add($cate_type = null,$add = null){
		if (IS_POST) {
			$model=D("Category");
			$data = I('post.');
			//批量添加方式
			if($data['type']==2){
				$this->butch_add($data);
				exit;
			}
			$arr = $model->create();
			if (!$arr){
				if(!empty($cate_type)){
					// 如果创建失败 表示验证没有通过 输出错误提示信息
					alertMes($model->getError(),'/admin/category/index/add/2');
				}else{
					// 如果创建失败 表示验证没有通过 输出错误提示信息
					alertMes($model->getError(),'/admin/category/index/add/1');
				}
			}
			//去除模板标题
			$arr['category_template']=trim(strstr($data['category_template'],"---"),"---");
			$arr['list_template']=trim(strstr($data['list_template'],"---"),"---");
			$arr['show_template']=trim(strstr($data['show_template'],"---"),"---");
			//判断添加栏目类型
			$arr['cate_type']=1;//栏目
			if(!empty($cate_type)){
				$arr['cate_type']=$cate_type;//单页
			}
			if(empty($arr['modelid'])){
				$arr['cate_type']=2;//单页
			}
			$m=$model->where("cateid={$data['parentid']}")->getField('is_final');
			//判断栏目是否是终极栏目
			if($m==1){
			   alertMes("上级栏目已经是终极栏目！不能添加子栏目");
			}
			//转换arrparentid字段信息
	        $arr=$model->parentid($arr);
	        //转换pathname字段信息
	        $arr=$model->parentpath($arr);
			if($model->add($arr)){
				alertMes('添加成功','/admin/category/index');
			}else{
				alertMes('添加失败');
			}
		}
		
	}
	//执行批量添加
	public function butch_add($data){
		$py = new \Org\Util\Pinyin();
		// $py->getAllPY("输出汉字所有拼音");
		// $py->getFirstPY("输出汉字首拼音");
		$model=D("category");
		//转换arrparentid字段信息
	    $data=$model->parentid($data);
		if (empty($data['c_name'])) {
			//add参数为改变tab默认选择参数
            alertMes('栏目名必须填写','/admin/category/index/add/1');
        }
        //去除模板标题
		$data['category_template']=trim(strstr($data['category_template'],"---"),"---");
		$data['list_template']=trim(strstr($data['list_template'],"---"),"---");
		$data['show_template']=trim(strstr($data['show_template'],"---"),"---");
		//以逗号转换添加信息
		$name=explode(",",$data['c_name']);
		foreach($name as $k=>$v){
			$data['pathname']=$py->getAllPY($v);
			//转换pathname字段信息
	        $data=$model->parentpath($data);
			$data['catename']=$v;
			//执行添加
			$result=$model->add($data);
		}
		if($result !== false){
			alertMes('批量添加成功','/admin/category/index');
		}else{
			alertMes('批量添加失败');
		}
		
		
	}
	//删除栏目
	public function del($id = null){
		if (!empty($id)) {
			$mod = M('category');
			$info=$mod->where("parentid = $id")->select();
			if($info){
				alertMes('请先删除子栏目', '/admin/category/index');
			}
			$res = $mod->where("cateid=$id")->delete();
			if ($res) {
				alertMes('删除成功', '/admin/category/index');
			} else {
				alertMes('删除失败', '/admin/category/index');
			}
		} else {
			alertMes('栏目不存在，无法删除', '/admin/category/index');
		}
	}
	//编辑栏目
	public function edit($id = null){
		$mod=D("Category");
		if (IS_POST) {
			$data = I('post.');
			$id=$data["cateid"];
			$arr = $mod->create();
			if (!$arr){
				// 如果创建失败 表示验证没有通过 输出错误提示信息
				alertMes($mod->getError());
			}
			//去除模板标题
			$arr['category_template']=trim(strstr($data['category_template'],"---"),"---");
			$arr['list_template']=trim(strstr($data['list_template'],"---"),"---");
			$arr['show_template']=trim(strstr($data['show_template'],"---"),"---");
			//判断该栏目下是否存在栏目
			if($data['is_final']==1){
				$a=$mod->where("parentid=$id")->select();
				if($a){
					alertMes("该栏目下存在栏目！不能作为终极栏目");
				}
			}
			//判断栏目是否是终极栏目
			if($m==1){
			   alertMes("所属栏目已经是终极栏目！不能添加子栏目");
			}
			//转换arrparentid字段信息
	        $arr=$mod->parentid($arr);
	        //转换pathname字段信息
	        $arr=$mod->parentpath($arr);
			$res = M("category")->save($arr);//执行修改操作
			if($res !== false ){
				alertMes('修改成功','/admin/category/index');
			}else{
				alertMes('修改失败');
			}
		}else{
			$info=$mod->where("cateid = $id")->find();
			$category=$mod->cate();//调用无限分类排序方法
			$model = M("Model")->where("status=1")->select();//模型
			//pc端模板
			$files=$mod->pc_field();
			//不同类型的模板
			$list_tpl=$mod->list_tpl($files);//列表页模板
			$index_tpl=$mod->category_tpl($files);//内容页模板
			$show_tpl=$mod->show_tpl($files);//首页模板 栏目模板
			$page_tpl=$mod->page_tpl($files);//单页模板
			//添加模板标题
			$info['show_template']=$mod->add_title($files,$info['show_template']);
			$info['list_template']=$mod->add_title($files,$info['list_template']);
			$info['category_template']=$mod->add_title($files,$info['category_template']);
			//转换目录名
			$res=M("category")->where("cateid={$info['parentid']}")->select();
			if($res){
				$info['pathname']=trim(strstr($info['pathname'],"/"),"/");	
			}
			$this->assign('list_tpl',$list_tpl);
			$this->assign('show_tpl',$show_tpl);
			$this->assign('index_tpl',$index_tpl);
			$this->assign('page_tpl',$page_tpl);
			$this->assign('category',$category);//栏目信息
			$this->assign('info',$info);//修改数据信息
			$this->assign('model',$model);//模型信息
			$this->display();
		}
	}

	//添加子栏目
	public function col_add($id){
		$mod = D('Category');
		$m=$mod->where("cateid=$id")->getField('is_final');
		//判断栏目是否是终极栏目
		if($m==1){
		   alertMes("该栏目已经是终极栏目！不能添加子栏目");
		}
		$info=$mod->where("cateid = $id")->find();
		$category=$mod->cate();//调用无限分类排序方法
		$model =M("Model")->where("status=1")->select();//模型
		//pc端模板
		$files=$mod->pc_field();
		//不同类型的模板
		$list_tpl=$mod->list_tpl($files);//列表页模板
		$index_tpl=$mod->category_tpl($files);//内容页模板
		$show_tpl=$mod->show_tpl($files);//首页模板 栏目模板
		$page_tpl=$mod->page_tpl($files);//单页模板
		$this->assign('list_tpl',$list_tpl);
		$this->assign('show_tpl',$show_tpl);
		$this->assign('index_tpl',$index_tpl);
		$this->assign('page_tpl',$page_tpl);
		$this->assign('category',$category);//栏目信息
		$this->assign('info',$info);//添加上级栏目信息
		$this->assign('model',$model);//模型信息
		$this->display();
	}
	//排序
    public function listorder() {
    	$Category =  M('category');
    	if (IS_POST) {
	        foreach ($_POST['listorders'] as $id => $sort) {
	        	$data['sort']=$sort;
	            $Category->where("cateid=$id")->save($data);
	        }
        	alertMes("排序成功","/admin/category");
        }else{
        	alertMes("排序失败");
        }
    }
    //添加单页
    public function single(){
    	$data = I('post.');
		$id=$data["id"];
		$cate_type=2;//栏目类型
		$add=2;
		$this->add($cate_type,$add);
    }
    //栏目终极属性转换  is_final字段的转换
    public function categoryshux($id) {
    	if(!empty($id)){
    		$Category =  M('category');
    		$data['is_final']=1;
    		$is_final=$Category->where("cateid=$id")->getField('is_final');
    		//判断栏目下是否还有子栏目
    		$cate=$Category->where("parentid=$id")->select();
    		if($cate){
    			alertMes("该栏目下面还有子栏目，不能转换");
    		}
    		//判断栏目是否是终极栏目
    		if($is_final==1){
    			$data['is_final']=0;
    		}
    		//执行栏目终极属性转换
    		$res=$Category->where("cateid=$id")->save($data);
    		if($res){
    			alertMes("终极属性转换成功","/admin/category");
    		}else{
    			alertMes("终极属性转换失败","/admin/category");
    		}
    	}else{
    		alertMes("请先选择栏目");
    	}
    }
	
}